<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 编译原理 操作系统
        冯洛伊曼原理
        浏览器是  文件=>内存的调度者  进程:浏览器独立运行的最小单元  
        简单数据类型内存 
        var a = 1;  // 文件=>内存  &a 声明了一个变量a,给a分配了一个地址
        var b = a;  // 给b重新分配一个地址，并把a的值拷贝过来
        b = 2;
        对象空间是独立的，o拿到的是这块地址的引用
        var o = {name:'钟萍'};
        var d = o;
        d.name = '腾讯萍';
        console.log(o,d); */

        /* var obj = {
            function 空间的分配:更特殊  
            函数负责对功能的封装 一个功能代码超过10行就应该封装到函数 有利于代码的复用
            函数的内部还要再分配空间
            分配在堆中
            this 
            foo: function(){
                this是在函数运行时决定的
                函数的运行要有一个上下文环境
                console.log(this.bar)
            },
            bar:1
        } */
       /*      不同的引用方式带来不同的结果
        var bar = 2;
        var foo = obj.foo; //获得函数的地址
        obj.foo();  // context  obj  this指向对象
        foo();  // 运行环境是全局  this指向全局
        var f = function(){
            // 上下文环境如何this如何
            console.log(this.x);
        }
        var x = 1; // window 全局
        var obj = {
            f,
            x:2
        }
        console.log(obj.f)
         */
    </script>
    <script src="./1.js"></script>
</body>
</html>